package user;

import book.bookList;
import operation.IOperation;

/**
 * @Author @fiber-cloud
 * @Date 2025/7/13 15:08
 * 是一个抽象父类
 */
public abstract class User {
    //有用户名字，功能数组
    protected String name;
    protected IOperation[] iOperations;

    //构造方法
    public User(String name) {
        this.name = name;
    }



     /*
    抽象方法menu：用于实现各自菜单的打印
                  需要重写
    参数：无
    返回值：用户需要实现的功能根据菜单上的数字进行的返回
    */

    public abstract int menu();

    /*
     toOperation方法:为了实现各自操作操作各自的功能，实现相互独立
                     通过输入用户菜单的选项的数字
                     进而操作功能数组通过下标来确定要实现的操作的方法work
     参数：用户菜单的选项的数字，以及操作的对象
     返回值：无
    */


    public void toOpertation(int choice, bookList booklist){
        iOperations[choice].work(booklist);
    }

}
